
# pytest fixture进行数据参数化
"""
fixture(scope,autouse):
    scope : session , package , module , class , function ,需要根据测试用例来决定 。
    autouse : 代表此fixture是否被自动执行，若不加这个他不会被执行。
    params : 接受的是列表数据，进行数据参数化 。[(0,1,1),(3,4,7),(-2,8,6)])

"""
import pytest

# 需求 ： 实现一个加法的函数
def add(x,y):
    return x + y


@pytest.fixture(scope='function',params=[(0,1,1),(3,4,7),(-2,8,6),(90,10,101)])           # autouse 代表这个fixture被自动执行。
def fixture_demo(request):
    print("这是一个初始化方法")
    yield request.param         # 相当于返回了params中的数据
    print("这是一个清空方法")


def test_add(fixture_demo):
    x,y = fixture_demo[0],fixture_demo[1]
    expect_value = fixture_demo[2]
    assert expect_value == add(x,y)

